一開始在寫程式的時候,其實就知道要測試程式碼的重要性,但很常因爲 code 落落長,通常都會偷懶…. 那今天就來補一下這方面相關的知識啦!
測試的單位?
舉個例子:
(使用jest)我今天想要驗證某個 api 是否有正確的被執行過一次
//描述今天要測試的案例
describe('Given Player first enter game',()=>{
const consumeTokenMock = jest.fn(async () => ("567"));
const MockAuthRepository = {
consumeToken: consumeTokenMock,
}
beforeEach(() => {
authToken = null;
jest.clearAllMocks();
})
it('When Player has token and enter the game', async function () {
expect(consumeTokenMock).toBeCalledTimes(1);
});
})
expect
、describe
、test
、toBe
、toEqual
等等除了Unit Test 外,也有整合測試(integration testing)和 end-to-end testing。
通常當 code 的邏輯已經涵括太多方向的時候,或者是這個邏輯有太多 edge cases 需要確保都會正確呈現,或者是希望提高程式碼復用性都建議可以寫測試來提高程式碼的品質。
參考文章: